#ifndef _MISC_H

#include <stdbool.h>

typedef struct _info_sys_
{       /* CPU */
        char *cpu_name;             /* Apontador para nome do processador */
        int cpu_mhz;                /* Mhz do proceassador                */
        int cpu_cache;              /* Cache do cpu em kbs                */
        /* RAM */
        unsigned long ram_total;    /* Memoria ram total em bytes         */
        unsigned long ram_free;     /* Memoria ram livre em bytes         */
        unsigned long ram_used;     /* Memoria ram usada em bytes         */
        float pram_used;            /* Percentagem da memoria ram usada   */
        float pram_free;            /* Percentagem da memoria ram livre   */
        /* SWAP */
        unsigned long swap_total;   /* Memoria swap total em bytes        */
        unsigned long swap_free;    /* Memoria swap livre em bytes        */
        unsigned long swap_used;    /* Memoria swap usada em bytes        */
        float pswap_used;           /* Percentagem da memoria swap usada  */
        float pswap_free;           /* Percentagem da memoria swap livre  */
        /* UPTIME */
        long uptime;                /* Uptime total em segundos           */
        unsigned short procs;       /* Numero de processos                */
} SYS;

#define clear_screen() printf("\033[2J" "\033[0;0f") /*Limpa o ecra e move o cursor para o inicio*/

extern inline bool comp(char *, char *);
extern SYS *get_sys_info(void);
extern bool isstrnum(char *);
extern bool isnum(char);
extern bool compic(char *, char *);
extern bool isinsidestr(char *, char *);
extern bool isinsidestric(char *, char *);
extern bool compictk(char *, char *, int);
extern bool comptk(char *, char *, int);
extern char *getoken(char *, unsigned short, char);
extern int tknum(char *, char);
extern int tknumac(char *, char);
extern char *getokenac(char *, unsigned short, char, bool *);
extern char *getokenaccorrect(char *, char);

#define _MISC_H 1
#endif /*misc.h included*/
